package capitulo2;

/*******************************************************************
 * Objetos, metodos y variables estaticas (Estaticos, objetivo 1.3)
 *******************************************************************/

class Animales{
	static void ladrar(){System.out.println("Guau, Guau!");}
}

public class Tema16_MVEstaticos extends Animales {
	
	//Variables no estaticos, no pueden ser accedidos por el FOR xq esta en el main
	int x = 3;
	float y = 4.3f;

	
	static void ladrar(){System.out.println("Miau, Miau!");} // redefinicion
	
	
	public static void main(String[] args) {
		/*
		 * Asi que mientras intentas seguirle la logica, el tema real es que x e
		 * y no pueden ser usadas dentro de main(), porqque x e y son
		 * instancias, no variables estaticas! Lo mismo se aplica a los metodos
		 * estaticos y no estaticos. La regla es, que un metodo estatico de una
		 * clase no puede acceder a uno no estatico (de instancia) o variable de
		 * su propia clase
		 */
//		for (int z = x; z < ++x; z--, y = y + z) {
//			// complicated looping and branching code
//		}
		

		ladrar(); 		//Invoca al Metodo static de la clase local
		Animales anim = new Animales();
		anim.ladrar();	// Invoca al Metodo statico de la clase Animales

	}
}
